Docker pro začátečníky: 1. díl
Autor: Ing. Lukáš Raszka
Datum: 30.11.2023
Jedná se o nástroj sloužící vývojářům, správcům systémů a dalším ke snadnému nasazení aplikaci v kontejnerech. Tyto kontejnery běží v hostitelském operačním systému. Nejdůležitější výhodou je bezesporu možnost, jenž nabízí uživatelům zabalit aplikaci se všemi jejími závislostmi (balíčky, knihovnami) do standardizovaného celku pro vývoj softwaru. Na rozdíl od virtuálních strojů nejsou kontejnery náročné na běh, a proto umožňují efektivnější využití systému a jeho možností.
Co to jsou kontejnery?
Standartním přístupem v oboru je používání virtualizace ke spouštění softwarových aplikací. Virtuální počítače spouštějí aplikace uvnitř svého vlastního virtuálního operačního systému. Tento systém běží na virtuálním hardware, který je poháněný hostitelským systémem.
Velkou výhodou virtuálních počítačů je velmi dobré zajištění úplné izolace procesů aplikací. Díky tomuto případný problém uvnitř virtuálního počítače prakticky nemůže ohrozit hostitelský operační systém. Stejně tak to platí i obráceným směrem. Tohoto je docíleno bohužel za dost velkou cenu, jenž je vykoupena spotřebou výpočetního výkonu hostitelského operačního systému. Výpočetní výkon vynaložený na virtualizaci hardware pro hostovaný operační systém je značný.
Kontejnery mají jiný přístup. Díky využití tzv. „low-level“ architektury hostitelského operačního systému poskytují kontejnery většinu izolace virtuálních strojů při zlomku výpočetního výkonu.
Proč používat kontejnery?
Kontejnery umožňují díky svému logickému balícímu mechanismu izolaci aplikace od prostředí, v němž skutečně běží (hostitelský operační systém). Díky tomuto lze aplikaci snadno a stabilně nasadit bez omezení do datového centra, veřejného cloudu anebo do osobního počítače vývojáře. Toto dává vývojářům možnost tvořit předvídatelná prostředí která jsou izolována od zbytku aplikací běžících na hostitelském operačním systému. Následné nasazení je prakticky neomezené.
Z provozního hlediska poskytují kontejnery kromě přenositelnosti také větší kontrolu nad zdroji což vede k optimalizaci infrastruktury, a tedy i k efektivnějšímu využití zařízení.
Toto umožnilo široké rozšíření kontejnerů, a tedy i Dockeru. Společnosti jako Google, Facebook, Netflix a mnoho dalších využívají kontejnery k zvýšení produktivity velkých inženýrských týmů a ke zlepšení využití výpočetních zdrojů. Společnost Google kontejnerům připisuje zásluhu na odstranění potřeby celého datového centra.
Na co je tato série návodů zaměřená?
Cílem tohoto kurzu je zájemcům zašpinit ruce Dockerem. Nejen že by měl sloužit k demystifikaci Dockeru, tak se také pokusí o poskytnutí praktických zkušeností s vytvářením a nasazováním vlastních webových aplikací v cloudu. Tento návod obsahuje několik částí, z nichž každá vysvětluje určitý aspekt nástroje Docker. V každé části budeme zadávat příkazy (nebo psát kód).
Předpoklady
Pro tento výukový kurz nejsou potřeba žádné zvláštní dovednosti kromě základní znalosti příkazového řádku a používání textového editoru. Tento tutoriál používá ke klonování lokálního úložiště nástroj git clone. Pokud nemáte v systému nainstalovaný systém Git, buď si jej nainstalujte, nebo si nezapomeňte ručně stáhnout soubory zip ze serveru Github. Předchozí zkušenosti s vývojem webových aplikací budou užitečné, ale nejsou nutné.
Článek byl převzat z webu docker-curriculum